package com.factory.factorymethod.section4.extend;

import com.factory.factorymethod.section4.Human;

/**
 * 具体工厂角色: 通过泛型对抽象产品进行依赖, 实际根据客户端需要,客户端传递具体产品,工厂就生产对应具体产品
 */
public class HumanFactory {

	/**
	 * 通过泛型限制了入参的类型
	 */
	public static Human createHuman(Class<? extends Human> c){
		//定义一个生产的人种
		Human human=null;  	
		try {
			 //产生一个人种
			human = (Human)Class.forName(c.getName()).newInstance();  			
		} catch (Exception e) {
			System.out.println("人种生成错误！");
		}
		return human;
	}
}
